package chapter07.s03charsteam.p04transform;

import java.io.*;

/**
 * 有时字节流和字符流之间也需要进行转换。
 * 在JDK中提供了两个类可以将字节流转换为字符流，
 * 它们分别是InputStreamReader和OutputStreamWriter
 */
public class Example18 {
    public static void main(String[] args) throws Exception {
        // 创建字节输入流
        FileInputStream in = new FileInputStream("src/chapter07/test.txt");
        // 将字节流输入转换成字符输入流
        InputStreamReader isr = new InputStreamReader(in);
        // 赋予字符流对象缓冲区
        BufferedReader br = new BufferedReader(isr);
        FileOutputStream out = new FileOutputStream("src/chapter07/test2.txt");
        // 将字节输出流转换成字符输出流
        OutputStreamWriter osw = new OutputStreamWriter(out);
        // 赋予字符输出流对象缓冲区
        BufferedWriter bw = new BufferedWriter(osw);
        String line;
        while ((line = br.readLine()) != null) { // 判断是否读到文件末尾
            // 调用BufferedWriter的write()方法写入字符时，这些字符首先会被写入缓冲区，
            // 当缓冲区写满时或调用close()方法时，缓冲区中的字符才会被写入目标文件
            bw.write(line); // 输出读取到的文件
            bw.newLine();
        }
        br.close();
        bw.close();
    }
}
